home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / CHIP Kasım 1998.iso / emulators / segagenesis / gcystxxx.exe / README.TXT < prev   
Text File  |  2000-01-01  |  12KB  |  330 lines

  1. =================================================================
  2.  genecyst                                 Version x.xx (xx/xx/9x)
  3.  by Bloodlust Software
  4. =================================================================
  5.  
  6. Do not send any files without asking first.
  7.  
  8. Do not ask about SNESticle (or anything else you want emulated).
  9.  
  10.  
  11. ---------------------
  12.      What it is
  13. ---------------------
  14.  
  15. genecyst is a DOS based emulator for the Sega Genesis.
  16.  
  17. The 68K, Z80, DAC, digital FM emulation and graphics
  18. rendering were written from *scratch* in assembly. The rest is in C++.
  19.  
  20. It is freeware and it is not to be distributed with game
  21. ROMs and it is not to be modified or sold.
  22.  
  23. Loads roms in the BIN, SMD or split (*.1) file formats.
  24.  
  25. OS/2 users: -disablelfn
  26.  
  27.  
  28. ---------------------
  29.      Revisions
  30. ---------------------
  31.  
  32. Version x.xx: 
  33.  - ????
  34.  
  35.  
  36. ---------------------
  37.     What it does
  38. ---------------------
  39.  
  40. What is emulated:
  41.  
  42.    -68000 CPU @ 8Mhz
  43.    -Z80 secondary CPU @ 4Mhz
  44.    -DAC output
  45.    -YM2612 FM synthesis
  46.    -TI76489 PSG 
  47.    -VDP
  48.    -DMA 
  49.    -ScrollA/ScrollB/Sprites/Window
  50.    -Some raster effects
  51.    -H/V interrupts
  52.    -Dual 4-button/7-button joypad emulation
  53.    -US/Japan/Europe variants
  54.  
  55. Other neat features:
  56.  
  57.    -Multiple save states and battery backed ram
  58.    -Joystick support
  59.    -VESA support
  60.    -Save .pcx snapshots
  61.    -Game genie codes
  62.    -Rom checksum fixer
  63.    -Wave output logging
  64.  
  65. ---------------------
  66.    What it lacks
  67. ---------------------
  68.  
  69. Shadow/highlighting effects
  70. Interlaced modes
  71.  
  72. Many games do not work correctly (or at all).
  73. Dont bother me if a ROM doesn't work.
  74.  
  75. ---------------------
  76.   What you need
  77. ---------------------
  78.  
  79. A Pentium with at least 8MB of RAM.
  80.  
  81. genecyst can take advantage of VESA 2.0 support if it exists.
  82. If it does not exist, genecyst will resort to only the
  83. video modes 320x200, 256x224, 256x240, 256x256, 320x224, 320x240.
  84. The last 2 modes are planar (unchained) ModeX modes, meaning that
  85. they are not linear and are very SLOW. Get a VESA extender such as Scitech
  86. Display Doctor (www.scitechsoft.com) and use 320x240 instead.
  87.  
  88. ---------------------
  89.   Work it baby
  90. ---------------------
  91.  
  92. Use alt-<key> to access the menu options (ie alt-l loads)
  93.  
  94. The default keys for the first controller are ABC='zxc', Start='v', XYZ='asd',
  95. and the arrow keys. They can be remapped from the Settings/Input device menu.
  96. Enter/Tab will simulate Start/C on controller 1 if you have a 2 button joystick,
  97. ONLY when the GUI is disabled or the game window has input focus (click on it)
  98.  
  99. 6-button Genesis controllers can be enabled from the Settings menu. Having a
  100. 6-button controller enabled on older games will most likely cause them to go
  101. haywire. The emulation of the 6-button controllers is only a guess, but it
  102. seems to work for most games. Most games need to be reset if you change from
  103. 3 to 6 buttons. 6-button support will be automatically disabled for games
  104. which don't support them as specified in their ROM header.
  105.  
  106. Some carts check to see what version of hardware they are running
  107. on (US/Japan/Europe), and they'll bitch if played on the wrong system.
  108. The setting in the Version menu is the default hardware preference. With 
  109. Auto-Version on, if the default version isn't listed in the ROM header, 
  110. the version will be automatically changed.
  111.  
  112. Some games contain battery backed RAM. This RAM is automatically
  113. loaded and saved to "xxxx.GSV" files.
  114.  
  115. F5/F7 saves and loads states. Pressing the keyboard keys 0-9 (not the numeric
  116. keypad ones) will change the current state slot for subsequent saves/loads.
  117. The state filename follows the form "xxxx.GS?" where 'xxxx' is the romname
  118. and ? is the current save slot (0-9).
  119.  
  120. Know that the battery backed RAM is saved in each state file. The
  121. battery RAM from any state file that is loaded will overwrite
  122. the ROM's .GSV file.
  123.  
  124. "Raster effects" refers to changes to the display made during a frame.
  125. Many games use H-interrupts to change video registers and change the 
  126. screen output as it is being drawn. H-ints are automatically enabled with 
  127. raster effects on.
  128.  
  129. Raster effect emulation is by default off because its still a bit buggy.
  130. For most games there will be little speed difference with or without
  131. raster effects, however some games change the video registers many
  132. times per frame. Games that do that will slow down a lot with raster
  133. effects on. Palette-based raster effects aren't emulated yet, but they
  134. are used quite frequently. Also, the raster effects will not persist
  135. with the cpu paused. These problems will be remedied in later versions.
  136. Examples of games that benefit from raster effects are TJ&E,G&G, sf2turbo,
  137. and Landstalker.
  138.  
  139. Some games create a letterbox effect by turning the display
  140. enable bit off near the bottom of the screen (usually after a H-interrupt).
  141. The 'force display enable' menu option will display the screen regardless 
  142. of the status of this bit. This is only needed for a few games, and only
  143. if you choose to leave raster effects off.
  144.  
  145. The DMAfix option prevents writes to the VDP during DMA transfers
  146. (fixes Superhydlide and Wiley wars).
  147.  
  148. ---------------------
  149.       Sound
  150. ---------------------
  151.  
  152. 22050 is the default sample rate. 
  153. 22050 sucks, use 44100.
  154. mono sucks, use stereo.
  155.  
  156. Genesis sound output is driven by a secondary Z80 processor running at 4Mhz,
  157. however the 68000 can also control the sound hardware directly. The Genesis
  158. uses a YM2612 sound chip which has six FM channels and one digital channel.
  159.  
  160. All sound can be disabled with the -nosound command line option.
  161. Z80 emulation can be disabled with the -disablez80 command line option.
  162.  
  163. genecyst can log the YM2612/PSG register writes to a .GYM file. 
  164. Someone (not me) could possibly write a utility to convert 
  165. this data into a .MID or other music file. 
  166. The GYM format works like this:  
  167.  while (!EOF)
  168.   switch (readbyte()) // readbyte() reads the next byte from the file
  169.   {
  170.    case 0: 1/60th of a second has elapsed; 
  171.    case 1: ymport=0; ymreg=readbyte(); ymdata=readbyte();
  172.    case 2: ymport=1; ymreg=readbyte(); ymdata=readbyte();
  173.    case 3: write readbyte() to psg port
  174.   }
  175.  
  176.  
  177.  
  178.  
  179. ---------------------
  180.    ROM patching
  181. ---------------------
  182.  
  183.  
  184. genecyst supports GameGenie codes and general patching of the
  185. CPU ROM address space (0-3FFFFE) at even addresses.
  186.  
  187. Bring up the ROM patching dialog with F6 or from the CPU menu.
  188. There are two edit fields in the dialog, the Name and the Code.
  189. The Code field is where the actual code goes (eg SCRA-BJX0).
  190. The Name field lets you type in a description of the code
  191. (eg "Rings worth 2"), if no name is entered then the code string is
  192. used as the name. Once you've filled these in, clicking "Add" (or
  193. pressing enter) will add it to the list of patches. To activate
  194. or deactivate the patch, doubleclick on the code name in the listbox
  195. or click on "Toggle". "Remove" deletes the patch completely.
  196. "Save" writes all the patches to the text file <romname>.pat,
  197. this file is decribed below.
  198.  
  199. genecyst accepts either GameGenie codes or raw patches.
  200. GameGenie codes are 8 digits long and use the symbols:
  201.      ABCDEFGHJKLMNPRSTVWXYZ0123456789
  202. The use of a '-' is optional.
  203.  
  204. The raw patches are in the format:
  205.         <$addr>:<$val>
  206. <$addr> is the 24-bit hex address (must be even)
  207. <$val> is the 16-bit hex value to be patched at that address.
  208.  
  209. genecyst can save a .pat file that contains all the patches
  210. created during a game. This file can be modified using a
  211. text editor. Each line of the .pat file looks like this:
  212.             <code> [<name>]
  213. <code> is the patch itself (GG or raw format).
  214. <name> is the text description of the code, if no name is supplied
  215.         then the code is used as the name
  216.  
  217. Note: If more than one patch modifies the same address then only one
  218. can be active at once. Activating one will deactivate the others.
  219.  
  220. Another Note: Most Genesis games do a rom checksum in order to verify
  221. their integrity. Therefore, having a patch active during the ROM's startup
  222. code could in most cases cause the ROM to crash itself. (Hence the use
  223. of so called 'master codes')
  224.  
  225.  
  226. ---------------------
  227. Command line options
  228. ---------------------
  229.  
  230.  
  231. @<filename>     : Parses the file <filename> for command line options
  232.  
  233. -res <xw> <yw>  : Sets the resolution to xw,yw on startup.
  234.  
  235. -setinput <num> <type>
  236.                 : Sets input device <num> to <type>
  237. -remapbut <device> <a> <b> <c> <start> <x> <y> <z>
  238.                 : Remaps buttons for <device>
  239.                 : <device> can be JOY1, JOY2, GRAVIS, GRIP1, GRIP2, 6BUTTON
  240. -setkey <device> <ul> <u> <ur> <l> <r> <dl> <d> <dr> <a> <b> <c> <start> <x> <y> <z>
  241.                 : Sets the keyboard scancodes for <device>
  242.                 : <device> can be KEY1 or KEY2
  243. -setjoythresh <num>  <left> <right> <up> <down>
  244.                 : Sets the joystick threshold for analog joystick <num>
  245.                 : left,right,up,down define the joystick's "dead-zone"
  246. -analogjoyres <num>
  247.                 : Sets the maximum number of times the joystick port
  248.                 : is polled. Increase this number if the calibration values
  249.                 : seem to max out.
  250.  
  251. -waitvsync      : Wait for the vertical sync to draw frames
  252. -hidegui        : Hide GUI on startup
  253. -nomsgpopup     : Disables the last message from being shown on screen
  254.  
  255. -load <rom>     : Load <rom>
  256. -run <rom>      : Load & Run <rom>
  257.  
  258. -romdir <dir>   : Sets the startup dir for roms
  259. -savedir <dir>  : Sets the directory for .GS? files
  260. -pcxdir <dir>   : Sets the directory for saving snapshots
  261.  
  262. -? or -h        : Display command line help
  263. -disablelfn     : Disables long file name support
  264. -novesa         : Don't use VESA extensions
  265. -linear         : Force linear VESA mode
  266. -banked         : Force banked VESA mode
  267.  
  268. -nosound        : Disables both FM and DAC
  269.  
  270. -disablez80     : Disables the Z80 processor (enabled by default)
  271. -fakez80        : Turns Z80 faking on (disabled by default)
  272.  
  273. -rdtsc          : Enable the use of the pentium RDTSC profiling instruction
  274.                 : Enabling this on a non-Pentium will cause genecyst to crash.
  275.  
  276. -fpucopy        : Use the FPU for mem->vidmem copies
  277.                 : This will only provide speedups for pentium class processors
  278.  
  279. -version <type> : <type> can be USA, Japan, or Europe
  280.  
  281. -exclusive      : This switch will disable windows multitasking. This result in a speedup
  282.                 : although all your other apps will pause while genecyst is running.
  283.                 : Using this switch is similar to running genecyst under pure DOS, but without
  284.                 : having to exit windows.
  285.  
  286. ---------------------
  287.      Contact
  288. ---------------------
  289.  
  290. bldlust@maelstrom.net
  291. http://????
  292.  
  293. Don't email me.
  294.  
  295. ---------------------
  296.   Acknowledgements
  297. ---------------------
  298.  
  299. The authors and contributors to the Sega Programming Faq
  300.  
  301. Ishmair for YM2612 information and help.
  302.  
  303. Neill Corlett for general 68K information
  304.  
  305. Merlyn LeRoy for the Sega Game Genie format
  306.  
  307. Special thanks to Loaded and Benny Boola Hill
  308.  
  309. Yuzo Koshiro would be proud
  310.  
  311. Marat Fayzullin, Jens Restemeier, Carl-Henrik Skσrstedt, and Zophar
  312.  
  313. And Y0SHi for kindly donating webspace.
  314.  
  315. ---------------------
  316.      Disclaimer
  317. ---------------------
  318.  
  319. genecyst Copyright 1997,1998 Bloodlust Software
  320. Sega and Genesis are trademarks of Sega Enterprises, Ltd.
  321. Neither Bloodlust Software nor the author are affiliated with Sega
  322.  nor advocate the piracy of Genesis games.
  323. genecyst is freeware and can be distributed freely as long as it is not
  324.  modified and ROMs are not packaged with the program.
  325. When you use this software you do so at your own risk. The author is
  326.  not responsible for any loss or damage resulting from the use or
  327.  misuse of this software.
  328. If you do not agree with these terms delete this software now.
  329.  
  330.